package com.qf.service.impl;

import com.qf.dao.ProductDao;
import com.qf.dao.impl.ProductDaoImpl;
import com.qf.pojo.PageBean;
import com.qf.pojo.Product;
import com.qf.service.ProductService;

import java.sql.SQLException;
import java.util.List;

/**
 *
 * 针对商品的业务接口实现
 */
public class ProductServiceImpl implements ProductService {
    @Override
    public List<Product> getNewProducts() {
        try {
            //调用数据访问接口
            ProductDao productDao = new ProductDaoImpl() ;
            List<Product> list = productDao.selectNewProdcuts();
            if(list !=null){
                return list ;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取热门商品列表
     * @return 返回商品列表
     */
    @Override
    public List<Product> getHotProducts() {
        try {
            ProductDao productDao = new ProductDaoImpl() ;
            List<Product> list = productDao.selectHotProducts();
            if(list!=null){
                return  list ;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 通过商品pid编号获取商品实体
     * @param pid 商品编号
     * @return 返回商品实体
     */
    @Override
    public Product getProduct(String pid) {
        try {
            //调用数据访问接口
            ProductDao productDao = new ProductDaoImpl();
            Product product = productDao.selectProductByPid(pid);
            if (product!=null){
                return product;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     *  根据分类id分页查询商品
     * @param currentPage 当前页码
     * @param pageSize 每页显示的条数
     * @param cid 商品分类id
     * @return 返回的分页实体
     */
    @Override
    public PageBean<Product> getProductByPage(int currentPage, int pageSize, String cid) {
        try {
            //调用数据访问接口
            ProductDao productDao = new ProductDaoImpl();
            List<Product> list = productDao.selectProductByPage(currentPage,pageSize,cid);
            //获取总记录数
            int totalCount = productDao.selectTotalCountByProduct(cid);
            if (list!=null && totalCount != 0){
                return new PageBean<>(currentPage,pageSize,totalCount,list);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}
